#pragma once
#include<iostream>
#include<vector>

using namespace std;

/*
* 传入一个排好序的递增数组 和 一个目标值
* 当数组中有两个值相加等于目标值时, 返回对应元素索引
* 结果是唯一的
*/
vector<int> TwoSum(const vector<int>& numbers, int target) {
	int left = 0;
	int right = numbers.size() - 1;

	while (left < right) {
		//相等时, 退出循环
		if (numbers[left] + numbers[right] == target) {
			break;
		}

		//如果两个指针指向元素的和小于给定值，我们把左边的指针右移一位，使得当前的和增加一点。
		else if (numbers[left] + numbers[right] < target) {
			left++;
		}

		//如果两个指针指向元素的和大于给定值，我们把右边的指针左移一位，使得当前的和减少一点。
		else {
			right--;
		}
	}
	cout << "left: " << left << "\trright: " << right << endl;
	return { left, right };
}